ItIron2021
Javascript
沒注意到昨天發錯文章了..把Day7當Day6發 今天重新補發一次
前三天我們都在講提升,我相信你一定也厭煩了,別擔心,那玩意不會再出現了?
有些比較重要的概念通常會有2~3題的複習機會,若你認為該概念你早就完全摸熟了,通常在前言的部分你可以看到今天的主題,發現已經熟練的就直接跳過就好囉!
今天讓我們來看看新的主題吧!
請你解釋undefined, null & not defined的差別
老樣子,來張防雷圖讓你好好思考一下這個看似奇妙的問題
這也是個很容易讓人覺得好像很簡單但卻又沒辦法講出個所以然的題目,但其實它真的很簡單! 首先我們都可以輕易地回答出第一點
比方說你今天隨便在你的編輯器上執行以下的程式碼,就會看到熟悉的錯誤訊息囉!
console.log(DannyWang) // Uncaught ReferenceError: DannyWang is not defined
接著就是比較null & undefined的差別了,這個也很單純,最主要的差別就在於是否被賦值而已!
null雖然是空值,但還是個值,表示這變數已被宣告、且已被賦值,undefined則清楚的表示這玩意未被賦值,同樣看個簡單的例子吧!
let dannyWang
console.log(dannyWang) // undefined
但這並不是唯一的差別,他們在變數型別也有所不同
console.log(typeof undefined) // undefined
console.log(typeof null) // object
console.log(typeof WangDanny) // undefined
undefined的型別為undefined、null的型別為object,這兩點你可能都不意外,但第三個玩意可能會讓你有點驚訝。未定義的變數會被typeof判別為undefined,但實際上這個變數未曾宣告過,這點要多注意,表示你並不能用typeof === 'undefined'去辨別某變數是否被宣告過。
null vs undefined
本文章同步發布於個人部落格,有興趣的朋友也可以來逛逛~!